// 存放 个人中心 相关的接口
const express = require('express');
const router = express.Router();

// 加载 utility 模块
const utility = require('utility');
const db = require('../db');
// ------------------------- 获取用户信息接口 --------------------------------
/* 
    接口要求

        - 请求方式：GET
        - 请求的url：/my/userinfo
        - 请求参数：无
        - 返回示例：{status:0,message:'',data:{包含个人信息的一个对象}}
*/
router.get('/userinfo', async (req, res) => {
    // 查询数据库  把查询到的用户信息，响应给客户端
    // 获取 token 中保存的用户id（login.js中）
    // console.log(req.user);
    let sql = 'select * from user where id = ?';
    let r = await db(sql, req.user.id);
    // console.log(r);

    if (r && r.length > 0) {
        res.send({ status: 0, message: '获取用户信息成功', data: r[0] });
    } else {
        res.send({ status: 1, message: '获取用户信息失败' });
    }
});

// ------------------------- 更新用户信息接口 --------------------------------
router.post('/userinfo', async (req, res) => {
    // console.log(req.body);
    let sql = 'update user set ? where id =?';
    let r = await db(sql, [req.body, req.body.id]);
    if (r && r.affectedRows > 0) {
        res.send({ status: 0, message: '更新用户信息成功' });
    } else {
        res.send({ status: 1, message: '更新用户信息失败' });
    }

});
// ------------------------- 重置密码接口 --------------------------------
router.post('/updatepwd', async (req, res) => {
    //1. 对两个密码进行加密
    let oldPwd = utility.md5(req.body.oldPwd);
    let newPwd = utility.md5(req.body.newPwd);
    //2. 使用原密码查询一下  检查原密码是否正确
    let r1 = await db('select * from user where password =? and id =?', [oldPwd, req.user.id]);
    if (r1 && r1.length > 0) {
        //3. 更新密码
        let r2 = await db('update user set password=? where id=?', [newPwd, req.user.id]);
        // 判断这一个用户的
        if (r2 && r2.affectedRows > 0) {
            res.send({ status: 0, message: '更新密码成功' });
        } else {
            res.send({ status: 1, message: '更新密码失败' });
        }
    } else {
        // 原密码错误
        res.send({ status: 1, message: '原密码错误' });
    }
});
// ------------------------- 更换头像接口 --------------------------------
router.post('/update/avatar', async (req, res) => {
    let sql = 'update user set user_pic=?where id=?';
    let r = await db(sql, [req.body.avatar, req.user.id]);
    if (r && r.affectedRows > 0) {
        res.send({ status: 0, message: '更换头像成功' });
    } else {
        res.send({ status: 1, message: '更换头像失败' });
    }
});
module.exports = router;